package com.xx.cloud.pay.service;


import com.github.binarywang.wxpay.bean.notify.SignatureHeader;
import com.github.binarywang.wxpay.bean.notify.WxPayRefundNotifyResult;
import com.github.binarywang.wxpay.bean.request.*;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.xx.cloud.pay.entity.CreateOrderEntity;
import com.xx.cloud.pay.result.R;


public interface CarPayService {

    R createOrderPerson(CreateOrderEntity request) throws WxPayException;

    String parseOrderNotifyResultPerson(String xmlData) throws WxPayException;

    R queryOrder(String transactionId, String outTradeNo) throws WxPayException;

    R refund(WxPayRefundRequest request);

    R refundQuery(String transactionId, String outTradeNo, String outRefundNo, String refundId);

    R closeOrder(String transactionId, String outTradeNo);

    WxPayRefundNotifyResult parseRefundNotifyResult(String xmlData);

    R<?> createOrderPerson1(CreateOrderEntity request);

    R refundV2(WxPayRefundRequest request);

    R refundV33(WxPayRefundV3Request request) throws WxPayException;

    R<?> closeOrderV33(WxPayUnifiedOrderV3Request request);

    R queryOrderV3(WxPayOrderQueryV3Request request);

    R<?> refundQueryV3(WxPayRefundQueryV3Request request);

    WxPayRefundNotifyResult parseRefundNotifyResultV3(String xmlData);

    String parseOrderNotifyResultPersonV3(String notifyData, SignatureHeader header);

}
